package com.jwds.digital.bios.business.service.service.belt;

import com.baomidou.mybatisplus.extension.service.IService;
import com.jwds.digital.bios.business.core.infrastructure.entity.belt.BeltAnomalyInfo;
import com.jwds.digital.bios.business.core.infrastructure.dto.belt.BeltAnomalyInfoReqDTO;
import com.jwds.digital.bios.business.core.infrastructure.entity.belt.BeltHealthConfig;
import com.jwds.digital.bios.business.core.infrastructure.entity.belt.BeltPerformanceMinute;
import com.jwds.digital.bios.business.core.infrastructure.vo.belt.BeltAnomalyInfoRespVO;
import com.jwds.tdc.framework.application.lib.page.PageRequest;
import com.jwds.tdc.framework.application.lib.page.PageResponse;
import java.util.List;

/**
 * 异常信息接口
 *
 * @author 林柏云
 * @date 2024-10-24
 */
public interface IBeltAnomalyInfoService extends IService<BeltAnomalyInfo>{

  /**
   * 负载率异常配置code
   */
  public static final String LOAD_FACTOR_CODE = "A1";

  /**
   * 空载率异常配置code
   */
  public static final String NO_LOAD_FACTOR_CODE = "A2";

  /**
   * 阻力异常配置code
   */
  public static final String Resistance_FACTOR_CODE = "A3";

  /**
   * 拉绳异常配置code
   */
  public static final String ROPE_CODE = "A4";


  /**
   * 堵塞异常配置code
   */
  public static final String BLOCK_CODE = "A5";

  /**
   * 撕裂异常配置code
   */
  public static final String TEAR_CODE = "A6";

  /**
   * 打滑异常配置code
   */
  public static final String SLIP_CODE = "A7";

  /**
   * 轻跑偏异常配置code
   */
  public static final String MINOR_DEVIATION_CODE = "A8";

  /**
   * 重跑偏异常配置code
   */
  public static final String SEVERE_DEVIATION_CODE = "A9";

  /**
   * 通过id查询
   * @param id 主键id
   * @return RespVO 查询结果
   */
  BeltAnomalyInfoRespVO queryById(Long id);

  /**
   * 分页查询
   * @param pageRequest 分页查询参数
   * @return pageResponse 分页查询结果
   */
  PageResponse<BeltAnomalyInfoRespVO> page(PageRequest<BeltAnomalyInfoReqDTO> pageRequest);

  /**
   * 列表查询
   * @param reqDto 查询条件
   * @return respVOList 查询结果
   */
  List<BeltAnomalyInfoRespVO> list(BeltAnomalyInfoReqDTO reqDto);

  /**
   * 新增
   * @param reqDto 新增对象
   */
  void add(BeltAnomalyInfoReqDTO reqDto);

  /**
   * 批量新增
   * @param reqDtoList 新增对象列表
   */
  void batchAdd(List<BeltAnomalyInfoReqDTO> reqDtoList);

  /**
   * 更新
   * @param reqDto 更新对象
   */
  void update(BeltAnomalyInfoReqDTO reqDto);

  /**
   * 根据Id删除
   * @param id 主键id
   */
  void delete(Long id);

  /**
   * 批量删除
   * @param ids 主键id列表
   */
  void batchDelete(List<Long> ids);

    List<BeltAnomalyInfo> todayAnomalyItem(Long id);

    List<BeltAnomalyInfo> weekAnomalyItem(Long id);

  List<BeltAnomalyInfo> monthAnomalyItem(Long id);


  /**
   * 检索路线异常
   */
  void searchForRouteExceptions();

  /**
   * 检索皮带异常
   */
  void searchForBeltExceptions();

  /**
   * 分钟信息检查
   *
   * @param beltPerformanceMinuteList 皮带分钟性能
   */
  public void minuteInformationCheck(List<BeltPerformanceMinute> beltPerformanceMinuteList);

  /**
   * 五防检查
   */
  public void fiveDefenseCheck();


}